package hxg.stream.characterStream;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * @author HeXiangGuang
 * @create 2021-06-28 21:23
 * 字节流读取中文如果采用一个一个字节读会中文乱码
 */
public class Demo1 {
    public static void main(String[] args) throws IOException {
        //1.FileInputStream
        FileInputStream fis = new FileInputStream("d:\\hello.txt");
        //2.读取
        byte[] buf = new byte[3];
        int data = 0;
        //下面读取的时候是一个个字节读取的，而且编码格式是utf-8
       /* 1、先说重点：
        不同的编码格式占字节数是不同的，UTF-8编码下一个中文所占字节也是不确定的，可能是2个、3个、4个字节；*/
        //一次读取byte[3]刚好一个中文字符，但是建议用字符流读取中文
        while ((data = fis.read(buf)) != -1){
            System.out.println(data);
//            System.out.print((char)data);
            System.out.print(new String(buf,0,data));
        }
        //3.关闭
        fis.close();

    }
}
